package com.tjec.project.projectLeaderWorkbeanch.service;

import com.tjec.framework.web.domain.TreeSelect;
import com.tjec.project.projectLeaderWorkbeanch.domain.BmsExpertPerson;
import com.tjec.project.projectLeaderWorkbeanch.domain.BmsMdExpertType;
import com.tjec.project.system.domain.BmsMdBusinessCategory;

import java.util.List;

/**
 * 专家专业分类Service接口
 * 
 * @author tjec
 * @date 2020-04-21
 */
public interface IBmsMdExpertTypeService 
{
    /**
     * 查询专家专业分类
     * 
     * @param guid 专家专业分类guid
     * @return 专家专业分类
     */
    public BmsMdExpertType selectBmsMdExpertTypeByGuid(String guid);

    /**
     * 查询专家专业分类
     *
     * @param guids 专家专业分类guid
     * @return 专家专业分类
     */
    public List<BmsMdExpertType> selectBmsMdExpertTypeByGuids(String[] guids);

    /**
     * 查询专家专业分类列表
     * 
     * @param bmsMdExpertType 专家专业分类
     * @return 专家专业分类集合
     */
    public List<BmsMdExpertType> selectBmsMdExpertTypeList(BmsMdExpertType bmsMdExpertType);

    /**
     * 新增专家专业分类
     * 
     * @param bmsMdExpertType 专家专业分类
     * @return 结果
     */
    public int insertBmsMdExpertType(BmsMdExpertType bmsMdExpertType);

    /**
     * 修改专家专业分类
     * 
     * @param bmsMdExpertType 专家专业分类
     * @return 结果
     */
    public int updateBmsMdExpertType(BmsMdExpertType bmsMdExpertType);

    /**
     * 批量删除专家专业分类
     * 
     * @param ids 需要删除的专家专业分类ID
     * @return 结果
     */
    public int deleteBmsMdExpertTypeByIds(String[] ids);

    /**
     * 删除专家专业分类信息
     * 
     * @param id 专家专业分类ID
     * @return 结果
     */
    public int deleteBmsMdExpertTypeById(String id);
    
    
    /**
     * 构建前端所需要下拉树结构
     *
     * @param bmsMdExpertTypes 专家专业类别列表
     * @return 下拉树结构列表
     */
    public List<TreeSelect> buildExpertTypeTreeSelect(List<BmsMdExpertType> bmsMdExpertTypes);
    
    /**
     * 构建前端所需要树结构
     *
     * @param BmsMdExpertType 专家专业类别列表
     * @return 树结构列表
     */
    public List<BmsMdExpertType> buildExpertTypeTree(List<BmsMdExpertType> bmsMdExpertTypes);

    /**
     * 获取子类专家分类通过guid
     *
     * @param guid 专家专业分类ID
     * @return 结果
     */
    public List<String> selectBmsMdExpertTypeChildrenByGuid(String guid);
}
